package com.init.bootframe.system.dao;

import java.util.List;

import com.init.bootframe.system.vo.RoleModuleVO;
import com.init.bootframe.system.vo.RolePermissionsVO;
import com.init.bootframe.system.vo.RoleVO;
import org.springframework.stereotype.Repository;

@Repository
public interface IRoleDao {

	/**
	 * 查询角色列表
	 * 
	 * @param roleVO
	 * @return
	 */
	public List<RoleVO> findRoleList(RoleVO roleVO);

	/**
	 * 查询角色列表总数
	 * 
	 * @param roleVO
	 * @return
	 */
	public int findRoleListCount(RoleVO roleVO);

	/**
	 * 添加角色
	 * 
	 * @param roleVO
	 * @return
	 */
	public void addRole(RoleVO roleVO);

	/**
	 * 查询角色
	 * 
	 * @param roleVO
	 * @return
	 */
	public RoleVO findRole(RoleVO roleVO);

	/**
	 * 修改角色
	 * 
	 * @param roleVO
	 * @return
	 */
	public void updateRole(RoleVO roleVO);

	/**
	 * 删除角色
	 * 
	 * @param roleVO
	 * @return
	 */
	public void deleteRole(RoleVO roleVO);

	/**
	 * 查询角色
	 * 
	 * @param roleVO
	 * @return
	 */
	public List<RoleVO> findRoles(RoleVO roleVO);
	
	/**
	 * 根据角色名称获取角色Id
	 * 
	 * @param roleVO
	 */
	public String findRoleIdByRoleName(RoleVO roleVO);

	/**
	 * 查询角色权限
	 * 
	 * @param rpVO
	 * @return
	 */
	public List<RolePermissionsVO> findRolePermissionsList(RolePermissionsVO rpVO);

	/**
	 * 添加角色权限
	 * 
	 * @param rpVO
	 */
	public void addRolePermissions(RolePermissionsVO rpVO);

	/**
	 * 删除角色权限
	 * 
	 * @param rpVO
	 */
	public void deleteRolePermissions(RolePermissionsVO rpVO);
	
	// ************************角色功能权限**************************
	/**
	 * 查询角色功能权限信息
	 * 
	 * @param roleModuleVO
	 * @return
	 */
	public List<RoleModuleVO> findRoleModuleList(RoleModuleVO roleModuleVO);

	/**
	 * 增加角色功能权限信息
	 * 
	 * @param roleModuleVO
	 */
	public void addRoleModule(RoleModuleVO roleModuleVO);

	/**
	 * 删除角色功能权限信息
	 * 
	 * @param roleModuleVO
	 */
	public void deleteRoleModule(RoleModuleVO roleModuleVO);

}
